TimeLimiter

JS/TS-friendly facade over com.sorinirmies.arrow.resiliencekit.TimeLimiter.

import { TimeLimiter } from "arrow-resilience-kit";

const tl = await TimeLimiter.create({ timeoutMillis: 5_000 });
const result = await tl.execute(() => slowOp());

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
fun <T> execute(timeoutMillis: Double? = null, block: () -> Promise<T>): Promise<T>

Executes block, rejecting with a timeout error if it exceeds timeoutMillis (or this limiter's default).

Link copied to clipboard
fun <T> executeOrDefault(default: T, timeoutMillis: Double? = null, block: () -> Promise<T>): Promise<T>

Like execute, but resolves default on timeout instead of rejecting.

Link copied to clipboard
fun <T> executeOrNull(timeoutMillis: Double? = null, block: () -> Promise<T>): Promise<T?>

Like execute, but resolves null on timeout instead of rejecting.

Link copied to clipboard
fun <T> executeWithRetry(timeoutMillis: Double? = null, retries: Int = 3, block: () -> Promise<T>): Promise<T>

Like execute, retrying up to retries times on timeout.

Link copied to clipboard

Resets all statistics counters.

Link copied to clipboard

Current statistics snapshot.